Older-first garbage collection in practice: evaluation in Java Virtual Machine
نویسندگان
چکیده
Until recently, the best performing copying garbage collectors used a generational policy which repeatedly collects the very youngest objects, copies any survivors to an older space, and then infrequently collects the older space. A previous study that used garbagecollection simulation pointed to potential improvements by using an Older-First copying garbage collection algorithm. The OlderFirst algorithm sweeps a fixed-sized window through the heap from older to younger objects, and avoids copying the very youngest objects which have not yet had sufficient time to die. We describe and examine here an implementation of the Older-First algorithm in the Jikes RVM for Java. This investigation shows that Older-First can perform as well as the simulation results suggested, and greatly improves total program performance when compared to using a fixedsize nursery generational collector. We further compare Older-First to a flexible-size nursery generational collector in which the nursery occupies all of the heap that does not contain older objects. In these comparisons, the flexible-nursery collector is occasionally the better of the two, but on average the Older-First collector performs the best.
منابع مشابه
Accurate garbage collection in uncooperative environments revisited
Implementing a concurrent programming language such as Java by the means of a translator to an existing language is attractive as it provides portability over all platforms supported by the host language and reduces development time – as many low-level tasks can be delegated to the host compiler. The C and C++ programming languages are popular choices for many language implementations due to th...
متن کاملFinding References in JavaTM Stacks
Exact garbage collection for the strongly-typed Java language may seem straightforward. Unfortunately, a single pair of bytecodes in the Java Virtual Machine instruction set presents an obstacle that has thus far not been discussed in the literature. We explain the problem, outline the space of possible solutions, and present a solution utilizing bytecode-preprocessing to enable exact garbage c...
متن کاملHard Real-Time Garbage-Collection in the Jamaica Virtual Machine
Java S automatic memory management is the main reason that prevents Java from being used in hard realtime environments. We present the garbage collection mechanism that is used by the Jamaica Virtual Machine, an implementation of the Java Virtual Machine Specification. This mechanism differs significantly from existing implementations in the way threads are implemented, root references are foun...
متن کاملComprehensive Profiling Support in the Java Virtual Machine
Existing profilers for Java applications typically rely on custom instrumentation in the Java virtual machine, and measure only limited types of resource consumption. Garbage collection and multi-threading pose additional challenges to profiler design and implementation. In this paper we discuss a general-purpose, portable, and extensible approach for obtaining comprehensive profiling informati...
متن کاملJamOLizer: Garbage Collection Visualizer in the JamVM
Garbage collection is a vital part of a virtual machine. However, the choice of garbage collector and its correct implementation is different for each type of system, especially real-time systems. It is hard to imagine what is happening internally within the garbage collector, which can lead to extremely fragmented systems or systems with degraded performance. GCspy [1] is a free visualization ...
متن کامل